Trend Vision One Container Securityのシークレットスキャンの除外設定方法について
こんにちは、シマです。
皆さんはTrend Vision Oneを使っていますか?先日、Trend Vision OneのContainer Security(以降V1CS)にあるシークレットスキャンについて記事にしました。
こういったスキャンをする系の製品においては、意図して設定しているファイルも検知してしまうので、除外設定をしたくなりますよね。今回は、先日記事にしたV1CSのシークレットスキャンにおいて、除外設定を実施していきます。
環境
先日の記事と同様に、環境構築方法については過去のブログをご確認ください。
試してみた
早速イメージスキャンを実行してみます。docker imagesとしては以下のような状態になっており、イメージ内にテスト用に作成したAWSのシークレットキー、アクセスキーを含むファイルを配置しています。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test-20240711-01 latest 7450a2ba1758 8 seconds ago 144MB
上記のイメージに対して、シークレットスキャンを実行すると、結果が以下のようになります。
$ tmas scan secrets docker:test-20240708-01:latest -r ap-northeast-1
Scan Complete
{
"secrets": {
"totalFilesScanned": 3307,
"unmitigatedFindingsCount": 7,
"overriddenFindingsCount": 0,
"findings": {
"unmitigated": [
{
"ruleID": "aws-access-token",
"description": "Identified a pattern that may indicate AWS credentials, risking unauthorized cloud resource access and data breaches on AWS platforms.",
"secret": "XXXXXXXXXXXXXXXXXXXX",
"location": {
"layerID": "sha256:4ac688645f02a47a7c3a675f9eadxxxxxfcf8ee7af9aa4cfcc770d9ff839b61",
"path": "/test/credentials",
"startLine": 2,
"endLine": 2,
"startColumn": 22,
"endColumn": 41
}
}
(以下略)
この検知されたファイルを除外するためには、YAML形式で除外設定ファイルを作成し、そのファイルをスキャン時の引数として与える必要があります。テスト用に作成したファイルを除外設定とするために、以下のような内容で作成しました。
secrets:
paths:
- patterns:
- ^/test/credentials$
reason: test
今回はファイルパスで除外設定をしているため「paths」として与えています。「patterns」として与える内容に正規表現が使えるのは良いですね。この他にもruleIDを与える「rules」等もありますが、今回の例では「aws-access-token」を与えてしまうと、AWSアクセストークン全てが除外設定になってしまうため、個人的にはあまりオススメしません。除外設定ファイルの詳細については以下をご確認ください。
上記のファイルをオプション「--override」として与え、イメージスキャンを実行します。
$ tmas scan secrets docker:test-20240711-01:latest -r ap-northeast-1 --override tmas_overrides.yml
Scan Complete
{
"secrets": {
"totalFilesScanned": 3307,
"unmitigatedFindingsCount": 6,
"overriddenFindingsCount": 1,
"findings": {
"unmitigated": [
(中略)
],
"overridden": [
{
"ruleID": "aws-access-token",
"description": "Identified a pattern that may indicate AWS credentials, risking unauthorized cloud resource access and data breaches on AWS platforms.",
"secret": "XXXXXXXXXXXXXXXXXXXX",
"location": {
"layerID": "sha256:4ac688645f02a47a7c3a675f9eadxxxxxfcf8ee7af9aa4cfcc770d9ff839b61",
"path": "/test/credentials",
"startLine": 2,
"endLine": 2,
"startColumn": 22,
"endColumn": 41
}
}
]
}
}
}
検知結果として除外設定をした対象は「unmitigated」ではなく「overridden」として出力されており、正しく除外設定ができていることが確認できました。
最後に
今回はV1CSのシークレットスキャンにおいて、除外設定をしてみました。
本記事がどなたかのお役に立てれば幸いです。